import axios from 'axios'

export default {
  namespaced: true,
  state: {
    token: '',
    userInfo: {}
  },
  mutations: {
    updateToken(state, token) {
      state.token = token
      // 只是存储到了 vuex 并未存储到 localStorage
      // 将来会有很多数据都需要持久化存储, 所以每次操作起来非常麻烦
      // 而且数据一旦变化, 也需要持久化存储, 太麻烦了!
      // 借助一个插件, 帮我们自动化存储到本地!
    },
    updateUserInfo(state, userInfo) {
      state.userInfo = userInfo
    }

  },
  actions: {
    // 1. 在actions中 发送异步ajax请求, 设置请求头,
    // 2. 在Main.vue中的created() 中调用dispatch ,
    // 3. 再交给mutations修改 state中的 userInfo 数据
    async getUserInfo(context) {
      // this.$http中this指向Vue实例
      // 这里的this指向 Store , 所以还得先导入axios
      const { data: res } = await axios.get('/my/userinfo')
      // console.log(res)

      context.commit('updateUserInfo', res.data)
    }
  },
  getters: {}
}
